package com.nan.leetcode;

public class Main2 {
    class Solution {
        public int romanToInt(String s) {
            //先将字符串转换为字符数组
            char[] c=s.toCharArray();
            int sum=0;
            //遍历数组
            for(int i=0;i<c.length;i++) {
                //定义j取i位置值
                int j = getValue(c[i]);
                //防止数组越界
                if (i < c.length-1) {
                    //定义m取i+1位置的值
                    int m = getValue(c[i + 1]);//存在数组越界的可能。
                    //如果前一个比后一个大或者等于后一个，sum=sum+前一个值；
                    //如果比后一个小，就先让后一个减去前一个，sum=sum+他俩的差值，i必须要++；
                    if (j > m || j == m) {
                        sum += j;
                    } else {
                        int k = m - j;
                        sum += k;
                        i++;//必须记住
                    }
                    //最后一个数组元素也要加上。
                }else{
                    sum=sum+getValue(c[i]);
                }
            }
            return sum;
        }
        private int getValue(char ch){
            switch(ch){
                case'I':return 1;
                case'V':return 5;
                case'X':return 10;
                case'L':return 50;
                case'C':return 100;
                case'D':return 500;
                case'M':return 1000;
                default:return 0;
            }
        }
    }
}
